package com.campus.lostandfound.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * 环境变量配置类
 * 统一管理所有环境变量
 */
@Configuration
public class EnvironmentConfig {

    // ==================== 密钥配置 ====================
    
    /**
     * AES 加密主密钥（必须是 16 字节）
     * 用于加密/解密环境变量中的敏感信息
     */
    @Value("${AES_ENCRYPTION_KEY:}")
    private String aesEncryptionKey;

    /**
     * JWT 签名密钥
     */
    @Value("${JWT_SECRET_KEY:campus-lost-found-secret-key-2024}")
    private String jwtSecretKey;

    // ==================== 数据库配置 ====================
    
    /**
     * 数据库连接 URL（支持加密）
     */
    @Value("${DB_URL:}")
    private String dbUrl;

    /**
     * 数据库用户名
     */
    @Value("${DB_USERNAME:root}")
    private String dbUsername;

    /**
     * 数据库密码（支持加密）
     */
    @Value("${DB_PASSWORD:}")
    private String dbPassword;

    // ==================== Redis 配置 ====================
    
    /**
     * Redis 服务器地址
     */
    @Value("${REDIS_HOST:localhost}")
    private String redisHost;

    /**
     * Redis 端口
     */
    @Value("${REDIS_PORT:6379}")
    private Integer redisPort;

    /**
     * Redis 密码（支持加密）
     */
    @Value("${REDIS_PASSWORD:}")
    private String redisPassword;

    // ==================== Getter 方法 ====================

    public String getAesEncryptionKey() {
        return aesEncryptionKey;
    }

    public String getJwtSecretKey() {
        return jwtSecretKey;
    }

    public String getDbUrl() {
        return dbUrl;
    }

    public String getDbUsername() {
        return dbUsername;
    }

    public String getDbPassword() {
        return dbPassword;
    }

    public String getRedisHost() {
        return redisHost;
    }

    public Integer getRedisPort() {
        return redisPort;
    }

    public String getRedisPassword() {
        return redisPassword;
    }
}

